package five;

public class A088 {

    //152.乘积最大子数组

    public int maxProduct(int[] nums) {
        int n = nums.length;
        //以i为结尾的最大乘积子数组/最小的
        int[] f = new int[n]; //最大
        int[] g = new int[n]; //最小
        int ret=nums[0];
        f[0]=g[0]=nums[0];
        for(int i=1;i<n;i++) {
            int x = nums[i] * f[i-1];
            int y = nums[i] * g[i-1];
            f[i]=Math.max(nums[i],Math.max(x,y));
            g[i]=Math.min(nums[i],Math.min(x,y));
            ret=Math.max(ret,f[i]);
        }
        return ret;
    }
}
